//
//  ZYUserAccountTools.swift
//  CZ29WeiboZYH
//
//  Created by 沐颜澈 on 16/6/26.
//  Copyright © 2016年 muyanche. All rights reserved.
//

import UIKit

class ZYUserAccountTools: NSObject {

    //保存的路径

    let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    
    //创建保存用户信息的对象
    var userAccount: ZYUserAccountModel?
    
    
    
    /*
    - isLogin
    - accessToken
    - 如果判断用户是否登录
    - 未登录
    - 如果我的access_token 为nil
    - 如果我的access_token 有值 但是 过期了
    - 已登录
    - 我的access_token有值 而且没有过期
    */
    
    //判断用户是否登录
    var isLogin:Bool {
        //如果access_token的值为nil的话就代表没有登录
        return accessToken != nil
    
    }
    
    //访问的令牌
    var accessToken:String? {
    
        //
        if userAccount?.access_token == nil {
            return nil
        } else {
            if userAccount?.expires_Date?.compare(NSDate()) == NSComparisonResult.OrderedDescending {
                
                return userAccount?.access_token
            
            } else {
                return nil
            }
        
        }
        
    
    }
    
    
    // 全局访问点
    static let sharedTools:ZYUserAccountTools = ZYUserAccountTools()
    
    override init() {
        
        super.init()
        
        userAccount = getUserAccount()
        
        
    }
    
    //保存对象
    func saveUserAccount(userAccount: ZYUserAccountModel) {
        //第一次调用单例的时候userAccount是nil所以要使用的话应该在保存数据额时候就给单例身上的属性userAccount赋值
        self.userAccount = userAccount
        
        NSKeyedArchiver.archiveRootObject(userAccount, toFile:path)
        
        
    }
    
    //获取对象
    func getUserAccount() -> ZYUserAccountModel?{
        
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? ZYUserAccountModel
        
        return result
    }
    
    
    
    
    
}
